|
Public Member Functions |
| | deSceneOctree () |
| int | Release () |
| void | TEST () |
| void | SetMinOctSize (deDouble MinSize) |
| deDouble | GetMinOctSize () |
| void | SetMaxNodeNum (int MaxNum) |
| int | GetMaxNodeNum () |
| IdeVertexBuffer * | GetVB (int MaxPoints) |
| deBoolean | WipeTree () |
| deBoolean | AddNode (IdeSceneRoom *Node) |
| deBoolean | RemoveNode (IdeSceneRoom *Node) |
| IdeSceneRoom * | FindContainerNode (const deVec3d &Position) |
| IdeSceneRoom * | FindClosestNode (const deVec3d &Position) |
| deBoolean | FindIntersectingNodes (deTList< IdeSceneRoom * > &List, const deVec3d *Mins, const deVec3d *Maxs) |
| deBoolean | TraceRayCollision (const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo &Collision) |
| void | CleanUp () |
Protected Member Functions |
| virtual | ~deSceneOctree () |
Private Types |
| enum | Neighbor_t {
n_None = -1,
n_Left = 0,
n_Right,
n_Bottom,
n_Top,
n_Front,
n_Back
} |
Private Member Functions |
| deBoolean | FillOctantLinePoints (Octant *oct, deVertex *Buffer, int &LastPoint, int MaxPoints) |
| void | CleanUp (Octant *oct) |
| deBoolean | SubdivideOctant (Octant *oct) |
| deBoolean | Optimize (Octant *oct) |
| deBoolean | InsertNode (IdeSceneRoom *Node) |
| deBoolean | CalcNeighbors (Octant *oct) |
| Octant * | TraceNeighbor (Octant *Start, Octant *Current, Neighbor_t N, int Depth) |
| deBoolean | RayTestFromOctant (Octant *oct, const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo &Collision) |
| deBoolean | RayTestNodes (Octant *oct, const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo *Collision) |
| deBoolean | RayTestParents (Octant *oct, const deVec3d &Start, const deVec3d &Dir, IdeCollision::deCollideInfo *Collision) |
| Neighbor_t | RayToNeighbor (Octant *oct, const deVec3d &RayStart, const deVec3d &RayDir, deVec3d &ExitPoint) |
| int | DecideChildOctant (Octant *Parent, const deVec3d &Position) |
| int | DecideParentOctant (Octant *Child, const deVec3d &Position) |
| deBoolean | InitializeRoot () |
| Octant * | MakeOctant (const deVec3d &Min, const deVec3d &Max, Octant *ParentChild, int ParentID) |
| Octant * | MakeSubOctant (Octant *ParentChild, int ParentID) |
| deBoolean | RemoveOctant (Octant *oct, deTList< IdeSceneRoom * > *DumpList, deBoolean RemoveChildren, deBoolean IgnoreNeighbors=deFALSE) |
| Octant * | FindOctant (const deVec3d &Position) |
| Octant * | FindSubOctant (Octant *oct, const deVec3d &Position) |
| Octant * | FindOctant (const deVec3d &Min, const deVec3d &Max) |
| Octant * | FindSubOctant (Octant *oct, const deVec3d &Min, const deVec3d &Max) |
| deBoolean | TestOctantPoint (Octant *oct, const deVec3d &Position) |
| deBoolean | TestOctantBBox (Octant *oct, const deVec3d &Min, const deVec3d &Max) |
Private Attributes |
| Octant * | m_Root |
| deDouble | m_MinSize |
| int | m_MaxNodes |
| int | m_TestNumber |
| IdeVertexBuffer * | m_LineListVB |